package com.hutao.manage.mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.hutao.manage.model.OutHospStatisIndexRecord;
import com.hutao.manage.pojo.BaseForSS;
import com.hutao.manage.pojo.BaseForTj;
import com.hutao.manage.pojo.BedIndex;
import com.hutao.manage.pojo.CostFee;
import com.hutao.manage.pojo.DiagRank;
import com.hutao.manage.pojo.OperationNumber;
import com.hutao.manage.pojo.OperationRank;
import com.hutao.manage.pojo.OutpatientVisit;
import com.hutao.manage.pojo.RepeatInHosp;
import com.hutao.manage.pojo.TTjBzfl;
import com.hutao.manage.query.MrInBasicQuery;

public interface MrInBasicMapper {
	
	/**
	 * 查询诊疗人次数
	 * @param orgCode
	 * @param reportDate
	 * @return
	 */
	OutpatientVisit getOutpatientVisit(@Param("orgCode")String orgCode,@Param("reportDate")String reportDate);
	
	/**
	 * 查询床位相关信息
	 * @param orgCode
	 * @param reportDate
	 * @return
	 */
	BedIndex getBedIndex(@Param("orgCode")String orgCode,@Param("reportDate")String reportDate);

	/**
	 * 查询疾病编码
	 * @param mrInBasicQuery
	 * @return
	 */
	List<DiagRank> getDiagRank(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 根据疾病编码查询疾病名称
	 * @param diagCode
	 * @return
	 */
	List<String> getDiagNameByCode(@Param("diagCode")String diagCode);
	
	
	/**
	 * 查询手术编码
	 * @param mrInBasicQuery
	 * @return
	 */
	List<OperationRank> getOperationRank(MrInBasicQuery mrInBasicQuery);

	/**
	 * 根据手术编码查询手术名称
	 * @param opsCode
	 * @return
	 */
	List<String> getOpsNameByCode(String opsCode);
	
	/**
	 * 查询住院费用相关信息
	 * @param mrInBasicQuery
	 * @return
	 */
	CostFee getCostFeeInfo(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 获取手术诊疗人次数
	 * @param mrInBasicQuery
	 * @return
	 */
	OperationNumber getOperationDataInfo(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 获取mrInBaisc数量
	 * @param mrInBasicQuery
	 * @return
	 */
	BigDecimal getMrInBasicCount(MrInBasicQuery mrInBasicQuery);
	
	
	/**
	 * 获取手术数量
	 * @param mrInBasicQuery
	 * @return
	 */
	BigDecimal getOperationCount(MrInBasicQuery mrInBasicQuery);
	
	
	/**
	 * 获取各个科室出院人数、平均住院天数和死亡人数
	 * @param mrInBasicQuery
	 * @return
	 */
	List<OutHospStatisIndexRecord> getOutHospNumAndDeathNumByDept(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 获取各个科室手术治疗性操作性人数和三四级治疗性操作性人次数
	 * @param mrInBasicQuery
	 * @return
	 */
	List<Map<String,Object>>  getOpCureByDept(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 获取各个科室费用信息
	 * @param mrInBasicQuery
	 * @return
	 */
	List<OutHospStatisIndexRecord> getCostFeeByDept(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 获取数据计算当天出院再入院数量
	 * @param mrInBasicQuery
	 * @return
	 */
	List<RepeatInHosp> getRepeatInHospNum(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 计算术前术后住院天数
	 * @param mrInBasicQuery
	 * @return
	 */
	OutHospStatisIndexRecord getBeforeAfterOpInHospitalDays(MrInBasicQuery mrInBasicQuery);
	
	/**
	 * 查询平均住院天数
	 */
	BigDecimal getAvgInHospDays(MrInBasicQuery mrInBasicQuery);
	
	
	
	List<TTjBzfl> getTjBzflByBzType(@Param("orgCode") String orgCode);
	
	
	List<Map<String,Object>> getFocalPoint(@Param("start") String start,@Param("end") String end,@Param("esql") String existsSql,@Param("orgCode") String yyIdentity);
	
	
	
	List<BaseForTj> getChongfuzhuYuan_zyzd(MrInBasicQuery mrInBasicQuery);
	
	
	List<BaseForSS> getSSTime(MrInBasicQuery mrInBasicQuery);
	
	
	Integer getCount(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("esql") String existsSql,@Param("orgCode") String orgCode);

	List<TTjBzfl> getTTjBzflList(@Param("orgCode") String orgCode);
	
	
	OutpatientVisit getOutAndDeathNum(@Param("startTime")String startTime ,@Param("endTime")String endTime,@Param("orgCode")String orgCode);

	
	

}
